<?php
require_once '../config/controller.php';
require_once '../views/ViewAdminController.php';
require_once '../config/class.mysql.php';
require_once '../config/metadata.php';
require_once '../inc/simpleimage.php';

class NovedadesController extends Controller {

	protected static $baseUrl = '/panel/novedades.php';

	public function index_action(){
		$metadata = Metadata::get('novedades');
		$ordenar = (isset($_GET['ordenar'])? $_GET['ordenar'] : '1');
		$ordenar = preg_replace("/[^a-zA-Z0-9\s]/", '', $ordenar);
		$tipo = (isset($_GET['tipo'])? $_GET['tipo'] : 'ASC');
		$tipo = preg_replace("/[^a-zA-Z\s]/", '', $tipo);

		//$result = $this->Mysql->getAll('novedades', 'id, titulo, text, fecha', null, $ordenar, $tipo);
		$result = $this->Mysql->getJoin(array('novedades', 'destacados'), 'novedades.id, novedades.titulo, text, fecha, destacados.id AS destacado', array('novedades.id', 'destacados.id_novedad'), 'LEFT', $ordenar, $tipo);
		$data = array(
			'novedades' => $result,
			'title' =>  $metadata['title'],
			'idioma' => $this->idioma,
			'func' => 'index',
			'tipo' =>  ($tipo == 'ASC' ? 'DESC' : 'ASC'),
			'error' => (isset($_GET['error']) ? 1 : ''),
			'baseUrl' => self::$baseUrl
		);

		$this->viewController->render('novedades', $data, $metadata);
	}
	public function insertar_action(){
		$data = array('title' => 'Insertar noticia', 'error' => '', 'baseUrl' => self::$baseUrl, 'accion' => 'insertar');
		$metadata = array('title' => 'Novedad');
		$errorMsg= '';
		if(isset($_POST["text"]) && $_POST["text"]!= NULL && isset($_POST["titulo"]) && $_POST["titulo"]!= NULL) {

			if($this->Mysql->insert('novedades', array($_POST['titulo'], $_POST['text'], date('Y-m-d'))))
	$this->redirect('index');
else $data['error'] = '1';
			
		}
		
		
		//header("location: ?func=" . $section . $errorMsg);
		$this->viewController->render('insertarNoticia', $data, $metadata);
		
	
	}
	
	public function editar_action(){
		$edicion = $this->Mysql->get('novedades','id', $_GET['id']);
		$data = array('title' => 'Editar noticia', 'error' => '', 'baseUrl' => self::$baseUrl, 'edicion' => $edicion, 'accion' => 'editar');
		$metadata = array('title' => 'Editar novedad');
		$errorMsg= '';
		if(isset($_POST["text"])  && isset($_POST["titulo"])) {

			if($this->Mysql->update('novedades', array('titulo' => $_POST['titulo'], 'text' => $_POST['text'], 'fecha' => date('Y-m-d')), "id='".$_GET['id']."'"))
				$this->redirect('index');
			else $data['error'] = '1';
			
		}
		
		
		//header("location: ?func=" . $section . $errorMsg);
		$this->viewController->render('insertarNoticia', $data, $metadata);
	
	}
	
	public function borrar_action(){
		if(isset($_GET['id'])){
			if(count($this->Mysql->getWhere('destacados', 'id', array('id_novedad', $_GET['id']))) != 0) {
				$this->eliminarDestacado_action($_GET['id']);
				
			}
			$this->Mysql->delete('novedades', array('id' => $_GET['id']));
		}
		$this->redirect();
	}
		
	public function eliminarDestacado_action($id_novedad = null){
		if ($id_novedad == null) $id_novedad = $_GET['id_novedad'];
		if($id_novedad){
			$res = $this->Mysql->get('destacados', 'id_novedad', $id_novedad);
			unlink("../destacados/".$res['imagen'].".jpg");
			$this->Mysql->delete('destacados', array('id_novedad' => $id_novedad));
		}
		$this->redirect();
	}

	public function insertarDestacado_action(){
		$data = array('title' => 'Insertar Destacado', 'error' => '', 'baseUrl' => self::$baseUrl);
		$metadata = array('title' => 'Insertar Destacado');
		$errorMsg= '';
		
		if(count($this->Mysql->getAll('destacados', 'id')) >= 3) {
			$data['error'] = 2; 
		}
		else if(isset($_POST["titulo"]) && isset($_FILES["image"]) && isset($_GET["id_novedad"])) {
			
			$name = $this->Mysql->getLast('destacados','id');
			$rest = $name['id']++;
			$file_name = 'destacado'.str_pad($rest, 4, 0, STR_PAD_LEFT);
			$image = new SimpleImage();
			$image->load($_FILES['image']['tmp_name']);
			$image->resizeToHeight(150);
			$image->save('../destacados/'.$file_name.'.jpg');

			if($this->Mysql->insert('destacados', array($file_name, $_POST['titulo'], $_GET['id_novedad'] ))) 
				$this->redirect('index');
			else $data['error'] = '1';
			
		}
		//header("location: ?func=" . $section . $errorMsg);
		$this->viewController->render('insertarDestacado', $data, $metadata);
	}
}


$controller = new NovedadesController('ViewAdminController', true);
$controller->dispatch();
